package com.ansion.user.api;

import androidx.annotation.NonNull;


import com.ansion.CommonDataCallback;
import com.ansion.user.beanforui.ContactActiveInfo;
import com.ansion.user.beanforui.ContactInfo;
import com.ansion.user.listener.BaseContactChangeListener;
import com.ansion.user.listener.ContactActiveListener;

import java.util.List;


public interface UserSdkApi {

    void unregisterContactListener(BaseContactChangeListener contactChangeListener);

    void getContactInfo(@NonNull String uid, boolean showNickname, boolean useOriginalAvatar, @NonNull CommonDataCallback<ContactInfo> callback);

    void getContactInfo(@NonNull String uid, boolean showNickname, @NonNull CommonDataCallback<ContactInfo> callback);

    void getContactInfo(@NonNull String uid, @NonNull CommonDataCallback<ContactInfo> callback);

    void getContactInfoWithGroupMember(@NonNull String uid, @NonNull CommonDataCallback<ContactInfo> callback);

    ContactInfo getContactInfo(@NonNull String uid);

    void registerContactListener(BaseContactChangeListener contactChangeListener);

    void getContactsInfo(@NonNull List<String> uidList, boolean showNickname, @NonNull CommonDataCallback<List<ContactInfo>> callback);

    @NonNull List<ContactInfo> getContactsInfo(@NonNull List<String> uidList, boolean showNickname);
    boolean isGroupMember(@NonNull String sessionId, @NonNull String uid);

    void loadContactActiveInfo(@NonNull String uid, @NonNull CommonDataCallback<ContactActiveInfo> callback);

    void registerContactActiveListener(@NonNull ContactActiveListener listener);

    void unregisterContactActiveListener(@NonNull ContactActiveListener listener);

    void getAllContactInfos(@NonNull CommonDataCallback<List<ContactInfo>> callback);

    boolean verifyUser(String sessionId);
}
